//package leetcode;
//
//class Solution {
//
//    public int backPackII(int m, int[] A, int[] V) {
//        int num = A.length;
//
//        if (m == 0 || num == 0) {
//            return 0;
//        }
//
//        int[] maxValue = new int[m + 1];
//
//        for (int i = 0; i <= m; i++) {
//            maxValue[i] = 0;
//        }
//
//        for (int i = 1; i <= num; i++) {
//            for (int j = m; j > 0; j--) {
//                if (A[i - 1] <= j) {
//                    int newValue = maxValue[j - A[i - 1]] + V[i - 1];
//                    maxValue[j] = Math.max(newValue, maxValue[j]);
//                }
//            }
//        }
//
//        return maxValue[m];
//    }
//}
//
//public class Test9 {
//    public static void main(String[] args) {
//        Solution solution = new Solution();
//        int m = 10;
//        int[] A = new int[]{2, 3, 8};
//        int[] V = new int[]{2, 5, 8};
//        solution.backPackII(m, A, V);
//    }
//}
